package h0716;

import java.util.Arrays;
import java.util.Scanner;

/**
 * @author 不知名帅哥
 * @version 1.0
 * @description 计算礼品发放的最小分组数目
 * @date 2024/7/16 14:16
 */
public class CalculateTheMinimumNumberOfGroupsForGiftDistribution {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int limit = Integer.parseInt(sc.nextLine());

        int[] array = Arrays.stream(sc.nextLine().split(" ")).mapToInt(Integer::parseInt).toArray();

        System.out.println(getResult(array,limit));
    }

    private static int getResult(int[] array,int limit) {
        int sum=0;
        int count=0;
        Arrays.sort(array);
        int n = array.length;

        int l=0;
        int r=n-1;
        while (l<r){  //优先以最小价格跟最大价格组合。
            sum= array[l]+ array[r];
            if (sum<=limit){ //如果可以合并为一组
                l++;  //左指针++;
            }
            r--;
            count++;
            if (l==r){  //l和r指向同一个元素
                count++;
            }
        }
        return count;
    }
}
